//package com.kystar.muxplayer.manager;
//
//import android.content.Context;
//import android.graphics.Rect;
//import android.support.annotation.NonNull;
//import android.util.Pair;
//import android.view.Gravity;
//import android.view.LayoutInflater;
//import android.view.View;
//import android.view.ViewGroup;
//import android.widget.ArrayAdapter;
//import android.widget.EditText;
//import android.widget.GridView;
//import android.widget.ImageView;
//import android.widget.LinearLayout;
//import android.widget.TextView;
//
//import com.kystar.muxplayer.Helper;
//import com.kystar.muxplayer.R;
//import com.kystar.muxplayer.base.Const;
//import com.kystar.muxplayer.base.TDevice;
//import com.kystar.muxplayer.base.TLog;
//import com.kystar.muxplayer.selfview.ButtonGroup;
//import com.kystar.muxplayer.selfview.ColorSeekBar;
//import com.kystar.muxplayer.selfview.MyConstraintLayout;
//import com.kystar.muxplayer.selfview.MyEditText;
//import com.kystar.muxplayer.selfview.MyKeyBoard;
//import com.kystar.muxplayer.ui.ViewList;
//
//import org.w3c.dom.Text;
//
//import java.util.ArrayList;
//
///**
// * Created by peanut on 2018/8/15
// */
//public class SettingGroupManager {
//    private Context mContext;
//    private LayoutInflater mInflater;
//    ViewGroup root;
//    private final ConcatGroup concatGroup;
//    private final LayerGroup layerGroup;
//    private final SignalGroup signalGroup;
//    private final SystemGroup systemGroup;
//    MyKeyBoard mKeyboard;
//    MyConstraintLayout mConStraintLayout;
//
//    public SettingGroupManager(Context context, ViewGroup viewGroup, MyConstraintLayout conStraintLayout) {
//        mContext = context;
//        mInflater = LayoutInflater.from(mContext);
//        root = viewGroup;
//        mConStraintLayout = conStraintLayout;
//        this.concatGroup = new ConcatGroup(root);
//        this.layerGroup = new LayerGroup(root);
//        this.signalGroup = new SignalGroup(root);
//        this.systemGroup = new SystemGroup(root);
//        mKeyboard = new MyKeyBoard(context, mConStraintLayout);
//    }
//
//
//    class ConcatGroup {
//        View lastModeView;
//        View lastSizeView;
//        View lastHzView;
//        View groupView;
//
//        ConcatGroup(ViewGroup parent) {
//            PairList<String, Integer> items = new PairList<>();
//            items.add("拼接模式", R.layout.layout_main_settings_concat_mode)
//                    .add("输出分辨率", R.layout.layout_main_settings_concat_size)
//                    .add("屏幕参数", R.layout.layout_main_settings_concat_screen);
//            this.groupView = createGroup("拼接设置", new PairListAdapter(items));
//            setupConcatMode();
//            setupConcatSize();
//            setupConcatOutput();
//            parent.addView(groupView, genLayoutParams(root.getContext()));
//        }
//
//        private void setupConcatMode() {
//            ViewGroup group = groupView.findViewById(R.id.concat_mode);
//            for (int i = 0; i < group.getChildCount(); i++) {
//                ViewGroup item = (ViewGroup) group.getChildAt(i);
//                item.setOnClickListener(v -> {
//                    if (lastModeView != null) Helper.setChildTextColor(lastModeView, 0, false);
//                    Helper.setChildTextColor(item, 0, true);
//                    lastModeView = item;
//                });
//            }
//        }
//
//
//        private void setupConcatSize() {
//            final GridView gridView = groupView.findViewById(R.id.concat_size_list);
//            final View customSizeView = groupView.findViewById(R.id.concat_size_custom);
//            final TextView sizeListBtn = groupView.findViewById(R.id.concat_size_list_tab);
//            final TextView sizeCustomBtn = groupView.findViewById(R.id.concat_size_custom_tab);
//            final TextView sizeIndicator = groupView.findViewById(R.id.concat_size_indicator);
//            final MyEditText sizeH = customSizeView.findViewById(R.id.concat_size_h);
//            final MyEditText sizeV = customSizeView.findViewById(R.id.concat_size_v);
//            sizeH.setOnClickListener(v -> {
//                mKeyboard.show((MyEditText) v);
//            });
//            sizeV.setOnClickListener(v -> {
//                mKeyboard.show((MyEditText) v);
//            });
//            sizeListBtn.setOnClickListener(v -> {
//                Helper.setTextColor(sizeListBtn, true);
//                Helper.setTextColor(sizeCustomBtn, false);
//                Helper.hideView(customSizeView);
//                Helper.showView(gridView);
//                sizeIndicator.setX(sizeListBtn.getLeft() + sizeListBtn.getWidth() / 2 - sizeIndicator.getWidth() / 2);
//            });
//            sizeCustomBtn.setOnClickListener(v -> {
//                Helper.setTextColor(sizeListBtn, false);
//                Helper.setTextColor(sizeCustomBtn, true);
//                Helper.showView(customSizeView);
//                Helper.hideView(gridView);
//                sizeIndicator.setX(sizeCustomBtn.getLeft() + sizeCustomBtn.getWidth() / 2 - sizeIndicator.getWidth() / 2);
//            });
//
//            gridView.setAdapter(new ArrayAdapter<String>(mContext, R.layout.textview_simple, Const.OUTPUT_SCREEN_SIZE) {
//                @Override
//                public View getView(int position, View convertView, @NonNull ViewGroup parent) {
//                    View view = super.getView(position, convertView, parent);
//                    return view;
//                }
//            });
//            gridView.setOnItemClickListener(((parent, view, position, id) -> {
//                if (lastSizeView != null) Helper.setChildTextColor(lastSizeView, 0, false);
//                Helper.setChildTextColor(view, 0, true);
//                lastSizeView = view;
//                Helper.show("save size %s(%d)", gridView.getAdapter().getItem(position).toString(), position);
//            }));
//
//            customSizeView.findViewById(R.id.concat_size_size_ok).setOnClickListener(v -> {
//                int width, height;
//                try {
//                    width = Integer.parseInt(sizeH.getText().toString());
//                    height = Integer.parseInt(sizeV.getText().toString());
//                } catch (Exception e) {
//                    e.printStackTrace();
//                    Helper.show("非法数字");
//                    return;
//                }
//                if (width < 0 || width > 4000) {
//                    Helper.show("水平大小不能超出范围(0,4000)");
//                    return;
//                }
//                if (height < 0 || height > 2000) {
//                    Helper.show("垂直大小不能超出范围(0,4000)");
//                    return;
//                }
//                Helper.show("save size %dx%d", width, height);
//            });
//            customSizeView.findViewById(R.id.concat_size_size_cancel).setOnClickListener(v -> {
//                sizeH.setText(String.valueOf(0));
//                sizeV.setText(String.valueOf(0));
//            });
//
//            customSizeView.findViewById(R.id.concat_size_hz_ok).setOnClickListener(v -> {
//                if (lastHzView != null) {
//                    // Helper.show("save hz %s", settings.concat.hz);
//                } else {
//                    Helper.show("请选择频率");
//                }
//            });
//            customSizeView.findViewById(R.id.concat_size_hz_cancel).setOnClickListener(v -> {
//                Helper.setChildTextColor(lastHzView, 0, false);
//                //             lastHzView = customSizeView.findViewWithTag(settings.concat.hz);
//                Helper.setChildTextColor(lastHzView, 0, true);
//            });
//
//            sizeListBtn.performLongClick();
//        }
//
//        private void setupConcatOutput() {
//            final ButtonGroup inputs = new ButtonGroup();
//            final View content = groupView.findViewById(R.id.concat_size_out_content);
//            final TextView indicator = ((View) content.getParent()).findViewById(R.id.concat_out_indicator);
//            final MyEditText sizeH = content.findViewById(R.id.concat_size_h);
//            final MyEditText sizeV = content.findViewById(R.id.concat_size_v);
//
//            sizeH.setOnClickListener(v -> {
//                mKeyboard.show((MyEditText) v);
//            });
//            sizeV.setOnClickListener(v -> {
//                mKeyboard.show((MyEditText) v);
//            });
//
//            inputs.addAll(Helper.filterByTag(groupView.findViewById(R.id.concat_size_out_list)));
//            inputs.setOnClickListener(v -> {
//                int index = Helper.getTagInt(v, 3) - 1;
//                indicator.setX(v.getLeft() + v.getWidth() / 2 - indicator.getWidth() / 2);
//            });
//
//            content.findViewById(R.id.concat_out_ok).setOnClickListener(v -> {
//
//                int width, height, index;
//                try {
//                    index = Helper.getTagInt(v, 3) - 1;
//                    width = Integer.parseInt(sizeH.getText().toString());
//                    height = Integer.parseInt(sizeV.getText().toString());
//                } catch (Exception e) {
//                    e.printStackTrace();
//                    Helper.show("非法数字");
//                    return;
//                }
//                if (width < 0 || width > 4000) {
//                    Helper.show("水平大小不能超出范围(0,4000)");
//                    return;
//                }
//                if (height < 0 || height > 2000) {
//                    Helper.show("垂直大小不能超出范围(0,4000)");
//                    return;
//                }
//
//            });
//            content.findViewById(R.id.concat_out_cancel).setOnClickListener(v -> {
//                int index = Helper.getTagInt(v, 3) - 1;
//
//            });
//            inputs.get(0).performClick();
//        }
//    }
//
//    class LayerGroup {
//        View rootView;
//        RectGroup viewRect;
//        RectGroup sourceRect;
//        ButtonGroup advanceButtons;
//
//        public LayerGroup(ViewGroup parent) {
//            PairList<String, Integer> items = new PairList<>();
//            items.add("图层参数", R.layout.layout_main_settings_layer_view)
//                    .add("局部设置", R.layout.layout_main_settings_layer_source)
//                    .add("全局/局部", R.layout.layout_main_settings_layer_full)
//                    .add("高级设置", R.layout.layout_main_settings_layer_advance);
//            rootView = createGroup("图层设置", new PairListAdapter(items));
//            parent.addView(rootView, genLayoutParams(mContext));
//            bindView();
//        }
//
//        public void bindView() {
//            viewRect = new RectGroup(rootView.findViewById(R.id.layer_view_rect));
//            sourceRect = new RectGroup(rootView.findViewById(R.id.layer_source_rect));
//            //viewRect.name.setText();
//            rootView.findViewById(R.id.layer_view_ok).setOnClickListener(v -> {
//                Rect rect = new Rect();
//                if (viewRect.getRect(rect)) {
//
//                }
//
//            });
//            rootView.findViewById(R.id.layer_view_cancel).setOnClickListener(v -> {
//
//            });
//            rootView.findViewById(R.id.layer_source_ok).setOnClickListener(v -> {
//                Rect rect = new Rect();
//                if (sourceRect.getRect(rect)) {
//
//                }
//            });
//            rootView.findViewById(R.id.layer_source_cancel).setOnClickListener(v -> {
//
//            });
//
//            // 全局/局部
//            rootView.findViewById(R.id.layer_full_global).setOnClickListener(v -> {
//
//            });
//            rootView.findViewById(R.id.layer_full_local).setOnClickListener(v -> {
//
//            });
//
//            // 高级设置
//            ColorSeekBar seekBarFilter = rootView.findViewById(R.id.csb_advance_filter);
//            ColorSeekBar seekBarFeather = rootView.findViewById(R.id.csb_advance_feather);
//            ColorSeekBar seekBarAlpha = rootView.findViewById(R.id.csb_advance_alpha);
//            advanceButtons = new ButtonGroup(rootView, R.id.layer_advance_buttons);
//            advanceButtons.setOnClickListener(v -> {
//                Helper.hideView(seekBarFilter);
//                Helper.hideView(seekBarFeather);
//                Helper.hideView(seekBarAlpha);
//                switch (Helper.getTag(v)) {
//                    case "filter":
//                        Helper.showView(seekBarFilter);
//                        break;
//                    case "feather":
//                        Helper.showView(seekBarFeather);
//                        break;
//                    case "alpha":
//                        Helper.showView(seekBarAlpha);
//                        break;
//                }
//            });
//            seekBarFilter.setMax(255);
//            seekBarFeather.setMax(20);
//            seekBarAlpha.setMax(255);
//            seekBarFilter.setOnChangListener(value -> {
//            });
//            seekBarFeather.setOnChangListener(value -> {
//            });
//            seekBarAlpha.setOnChangListener(value -> {
//            });
//
//        }
//    }
//
//    class RectGroup {
//        MyEditText left;
//        MyEditText top;
//        MyEditText width;
//        MyEditText height;
//        TextView name;
//
//        public RectGroup(View root) {
//            left = root.findViewById(R.id.group_rect_left);
//            top = root.findViewById(R.id.group_rect_top);
//            width = root.findViewById(R.id.group_rect_width);
//            height = root.findViewById(R.id.group_rect_height);
//            name = root.findViewById(R.id.layer_source_name);
//            left.setOnClickListener(v -> {
//                mKeyboard.show((MyEditText) v);
//            });
//            top.setOnClickListener(v -> {
//                mKeyboard.show((MyEditText) v);
//            });
//            width.setOnClickListener(v -> {
//                mKeyboard.show((MyEditText) v);
//            });
//            height.setOnClickListener(v -> {
//                mKeyboard.show((MyEditText) v);
//            });
//        }
//
//        public void setRect(Rect rect) {
//            left.setText(String.valueOf(rect.left));
//            top.setText(String.valueOf(rect.top));
//            width.setText(String.valueOf(rect.width()));
//            height.setText(String.valueOf(rect.height()));
//        }
//
//        public boolean getRect(Rect rect) {
//            try {
//                int l = Integer.parseInt(left.getText().toString());
//                int t = Integer.parseInt(top.getText().toString());
//                int w = Integer.parseInt(width.getText().toString());
//                int h = Integer.parseInt(height.getText().toString());
//                if (w < 0 || w > 4000) {
//                    Helper.show("水平大小不能超出范围(0,4000)");
//                    return false;
//                }
//                if (w < 0 || w > 2000) {
//                    Helper.show("垂直大小不能超出范围(0,4000)");
//                    return false;
//                }
//                rect.set(l, t, l + w, t + h);
//                return true;
//            } catch (Exception ex) {
//                Helper.show("非法数字");
//                return false;
//            }
//        }
//
//    }
//
//    class SignalGroup {
//        View rootView;
//        TextView edidWidth;
//        TextView edidHeight;
//        TextView sigalWidth;
//        TextView sigalHeight;
//        TextView vgaLeft;
//        TextView vgaTop;
//        TextView vgaWidth;
//        TextView vgaHeight;
//        ImageView vgaOk;
//        ImageView vgaCancle;
//        ViewList edidViewList;
//        ViewList edidHzViewList;
//
//
//        public SignalGroup(ViewGroup parent) {
//            PairList<String, Integer> items = new PairList<>();
//            items.add("输入对比度", R.layout.layout_main_settings_signal_contrast)
//                    .add("EDID设置", R.layout.layout_main_settings_signal_edid)
//                    .add("信号有效模式", R.layout.layout_main_settings_signal_mode)
//                    .add("VGA矫正", R.layout.layout_main_settings_signal_vga);
//            rootView = createGroup("信号设置", new PairListAdapter(items));
//            parent.addView(rootView, genLayoutParams(mContext));
//
//            bindView();
//            setupView();
//        }
//
//        public void bindView() {
//            edidWidth = rootView.findViewById(R.id.signal_edid_width);
//            edidHeight = rootView.findViewById(R.id.signal_edid_height);
//            edidWidth.setOnClickListener(v -> {
//                mKeyboard.show((MyEditText) v);
//            });
//            edidHeight.setOnClickListener(v -> {
//                mKeyboard.show((MyEditText) v);
//            });
//            edidViewList = new ViewList(rootView, R.id.signal_edid_buttons, true);
//            edidViewList.setOnClickListener(v -> {
//                if ("default".equals(Helper.getTag(v))) {
//                    Helper.showView(Helper.getChildView(edidViewList.get(0), 1));
//                    Helper.hideView(Helper.getChildView(edidViewList.get(1), 1));
//                    Helper.hideView(rootView.findViewById(R.id.signal_edid_manual));
//                    Helper.showView(rootView.findViewById(R.id.signal_edid_default));
//                } else {
//                    Helper.hideView(Helper.getChildView(edidViewList.get(0), 1));
//                    Helper.showView(Helper.getChildView(edidViewList.get(1), 1));
//                    Helper.hideView(rootView.findViewById(R.id.signal_edid_default));
//                    Helper.showView(rootView.findViewById(R.id.signal_edid_manual));
//                }
//            });
//
//            rootView.findViewById(R.id.signal_edid_default_ok).setOnClickListener(v -> {
//                Helper.show("edid set default");
//            });
//            rootView.findViewById(R.id.signal_edid_default_cancel).setOnClickListener(v -> {
//                Helper.show("edid cancel default");
//                edidViewList.get(1).performClick();
//            });
//            edidHzViewList = new ViewList(rootView, R.id.signal_edid_hz_buttons, false);
//            edidHzViewList.setOnClickListener(v -> {
//                Helper.show("edid set ", Helper.getTag(v) + "Hz");
//            });
//            sigalWidth = rootView.findViewById(R.id.signal_mode_width);
//            sigalWidth.setOnClickListener(v -> {
//                mKeyboard.show((MyEditText) v);
//            });
//            sigalHeight = rootView.findViewById(R.id.signal_mode_height);
//            sigalHeight.setOnClickListener(v -> {
//                mKeyboard.show((MyEditText) v);
//            });
//
//            vgaLeft = rootView.findViewById(R.id.group_rect_left);
//            vgaTop = rootView.findViewById(R.id.group_rect_top);
//            vgaWidth = rootView.findViewById(R.id.group_rect_width);
//            vgaHeight = rootView.findViewById(R.id.group_rect_height);
//            vgaOk = rootView.findViewById(R.id.layer_view_ok);
//            vgaCancle = rootView.findViewById(R.id.layer_view_cancel);
//            vgaLeft.setOnClickListener(v -> {
//                mKeyboard.show((MyEditText) v);
//            });
//            vgaTop.setOnClickListener(v -> {
//                mKeyboard.show((MyEditText) v);
//            });
//            vgaWidth.setOnClickListener(v -> {
//                mKeyboard.show((MyEditText) v);
//            });
//            vgaHeight.setOnClickListener(v -> {
//                mKeyboard.show((MyEditText) v);
//            });
//            vgaOk.setOnClickListener(v -> {
//
//            });
//            vgaCancle.setOnClickListener(v -> {
//
//            });
//
//        }
//
//        public void setupView() {
//            edidViewList.get(1).performClick();
//        }
//    }
//
//    class SystemGroup {
//        View rootView;
//
//        public SystemGroup(ViewGroup parent) {
//            PairList<String, Integer> items = new PairList<>();
//            items.add("多级同步", R.layout.layout_main_settings_system_sync)
//                    .add("技术支持", R.layout.layout_main_settings_system_support)
//                    .add("监视设置", R.layout.layout_main_settings_system_monitor);
//            rootView = createGroup("系统设置", new PairListAdapter(items));
//            parent.addView(rootView, genLayoutParams(mContext));
//            setupMonitorView();
//            setupSyncView();
//        }
//
//
//        private void setupSyncView() {
//            View closeView = rootView.findViewById(R.id.system_sync_close);
//            View customView = rootView.findViewById(R.id.system_sync_custom);
//            ViewList syncHead = ViewList.buttons(rootView.findViewById(R.id.system_sync_head), true);
//            syncHead.setOnClickListener(v -> {
//                if ("0".equals(v.getTag().toString())) {
//                    Helper.showView(Helper.getChildView(syncHead.get(0), 1));
//                    Helper.showView(closeView);
//                    Helper.hideView(Helper.getChildView(syncHead.get(1), 1));
//                    Helper.hideView(customView);
//                } else {
//                    Helper.hideView(Helper.getChildView(syncHead.get(0), 1));
//                    Helper.hideView(closeView);
//                    Helper.showView(Helper.getChildView(syncHead.get(1), 1));
//                    Helper.showView(customView);
//                }
//            });
////            setupConfirm(closeView, "是否关闭多机同步？",
////                    ()-> connection.run(p-> p.setSyncSource(0, false)).post(),
////                    ()-> syncHead.get(1).performClick());
//
//            ViewList syncSource = new ViewList();
//            Helper.each((View) Helper.getChildren(customView),
//                    view -> syncSource.addAll(Helper.getChildren(view)));
//            syncSource.setOnClickListener(v -> {
////                int source = Helper.getTagInt(v, 0);
////                connection.run(p->p.setSyncSource(source, true)).post();
//            });
//            syncHead.get(1).performClick();
//        }
//
//        private void setupMonitorView() {
//            View content = rootView.findViewById(R.id.system_monitor_content);
//            View applyView = rootView.findViewById(R.id.system_take_mode_content);
//            ViewList head = ViewList.buttons(rootView.findViewById(R.id.system_monitor_head), true);
//            ViewList monitorMode = ViewList.buttons(content, true);
//            ViewList takeMode = new ViewList();
//            Helper.eachChild(applyView, view -> {
//                if (view.getTag() != null) {
//                    takeMode.add(view);
//                }
//            });
//
//            head.setOnClickListener(v -> {
//                if (Helper.getTagInt(v, 0) == 1) {
//                    Helper.hideView(content);
//                    Helper.showView(applyView);
//                } else {
//                    Helper.showView(content);
//                    Helper.hideView(applyView);
//                }
//            });
//            monitorMode.setOnClickListener(v -> {
//                int mode = Helper.getTagInt(v, 0);
////                connection.run(p -> p.setMonitorMode(mode)).onOK(()->{
////                    settings.monitorMode = mode;
////                    muxModel.pvwSubject.publish(settings.pvw,
////                            Event.EventSource.Settings, Event.EventType.MonitorMode);
////                }).post();
//            });
//
//            takeMode.setOnClickListener(v -> {
//                int mode = Helper.getTagInt(v, 0);
//                //  connection.run(p -> p.setTakeMode(mode)).post();
//            });
//
//            head.get(1).performClick();
//        }
//    }
//
//    private View createGroup(String name, Adapter adapter) {
//        View root = mInflater.inflate(R.layout.layout_main_settings_group_panel, null);
//        TextView title = root.findViewById(R.id.settings_group_name);
//        ViewGroup content = root.findViewById(R.id.settings_group_content);
//        title.setText(name);
//        for (int index = 0; index < adapter.getCount(); index++) {
//            View item = mInflater.inflate(R.layout.layout_main_settings_group_item, null);
//            TextView subtitle = item.findViewById(R.id.settings_group_item_name);
//            subtitle.setText(adapter.getTitle(index));
//            ViewGroup subcontent = item.findViewById(R.id.settings_group_item_content);
//            subcontent.addView(
//                    adapter.getView(mInflater, index),
//                    ViewGroup.LayoutParams.MATCH_PARENT,
//                    ViewGroup.LayoutParams.WRAP_CONTENT);
//
//            setupSettingsItem(item, index + 1 == adapter.getCount());
//            content.addView(item);
//        }
//        setupSettingsPanel(root);
//        return root;
//    }
//
//    @NonNull
//    private static LinearLayout.LayoutParams genLayoutParams(Context context) {
//        int space = context.getResources().getDimensionPixelSize(R.dimen.main_setting_group_space);
//        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
//                ViewGroup.LayoutParams.WRAP_CONTENT,
//                ViewGroup.LayoutParams.WRAP_CONTENT);
//        params.topMargin = space;
//        params.gravity = Gravity.CENTER_HORIZONTAL;
//        return params;
//    }
//
//    private interface Collapse {
//        void collapse(boolean toggle);
//    }
//
//    private Collapse group, subgroup;
//
//    private void setupSettingsPanel(View root) {
//        final Collapse panel = toggle -> {
//            final ImageView arrow = root.findViewById(R.id.settings_group_title_arrow);
//            final View content = root.findViewById(R.id.settings_group_content);
//            if (toggle && content.getVisibility() == View.GONE) {
//                content.setVisibility(View.VISIBLE);
//                arrow.setImageResource(R.drawable.settings_title_up);
//            } else {
//                content.setVisibility(View.GONE);
//                arrow.setImageResource(R.drawable.settings_title_down);
//            }
//        };
//
//        root.findViewById(R.id.settings_group_title).setOnClickListener(v -> {
//            if (group != null && group != panel) {
//                group.collapse(false);
//                if (subgroup != null) {
//                    subgroup.collapse(false);
//                }
//            }
//            panel.collapse(true);
//            group = panel;
//        });
//    }
//
//    private void setupSettingsItem(View root, boolean last) {
//        final View divider = root.findViewById(R.id.settings_group_item_divider);
//        if (last) {
//            divider.setVisibility(View.GONE);
//        }
//        final Collapse subpanel = toggle -> {
//            final ViewGroup content = root.findViewById(R.id.settings_group_item_content);
//            final ImageView arrow = root.findViewById(R.id.settings_group_item_title_arrow);
//            if (toggle && content.getVisibility() == View.GONE) {
//                content.setVisibility(View.VISIBLE);
//                arrow.setImageResource(R.drawable.settings_subtitle_up);
//                if (divider != null && !last) {
//                    divider.setVisibility(View.GONE);
//                }
//            } else {
//                content.setVisibility(View.GONE);
//                arrow.setImageResource(R.drawable.settings_subtitle_down);
//                if (divider != null && !last) {
//                    divider.setVisibility(View.VISIBLE);
//                }
//            }
//        };
//
//        root.findViewById(R.id.settings_group_item_title).setOnClickListener(v -> {
//            if (subgroup != null && subgroup != subpanel) {
//                subgroup.collapse(false);
//            }
//            subpanel.collapse(true);
//            subgroup = subpanel;
//        });
//    }
//
//
//    public interface Adapter {
//        int getCount();
//
//        String getTitle(int index);
//
//        View getView(LayoutInflater inflater, int index);
//    }
//
//    public static class PairListAdapter implements Adapter {
//        private PairList<String, Integer> items;
//
//        public PairListAdapter(PairList<String, Integer> items) {
//            this.items = items;
//        }
//
//        @Override
//        public int getCount() {
//            return items.size();
//        }
//
//        @Override
//        public String getTitle(int index) {
//            return items.get(index).first;
//        }
//
//        @Override
//        public View getView(LayoutInflater inflater, int index) {
//            return inflater.inflate(items.get(index).second, null);
//        }
//    }
//
//    public class PairList<K, V> extends ArrayList<Pair<K, V>> {
//
//        public PairList<K, V> add(K k, V v) {
//            this.add(new Pair<>(k, v));
//            return this;
//        }
//
//    }
//}
